package LeetCode;

/**
 * @author 豆包LU
 * @date 2023/4/11 15:26
 */
public class SearchInsertPosition {
    public int searchInsert(int[] nums, int target) {
        int left = 0; // 左边界
        int right = nums.length - 1; // 右边界

        while (left <= right) {
            int mid = left + (right - left) / 2; // 取中间位置

            if (nums[mid] == target) {
                // 如果中间值等于目标值，则找到目标值，返回索引
                return mid;
            } else if (nums[mid] < target) {
                // 如果中间值小于目标值，则目标值在右侧，更新左边界
                left = mid + 1;
            } else {
                // 如果中间值大于目标值，则目标值在左侧，更新右边界
                right = mid - 1;
            }
        }
        // 如果没有找到目标值，则返回应该插入的位置
        return left;
    }
}
